"""本地缓存实现"""
from cachetools import TTLCache
from functools import lru_cache
from typing import Any, Optional

# TTL缓存（带过期时间）
field_config_cache: TTLCache = TTLCache(maxsize=100, ttl=3600)  # 1小时过期
scan_task_cache: TTLCache = TTLCache(maxsize=50, ttl=300)  # 5分钟过期


def get_cached(key: str, cache: TTLCache) -> Optional[Any]:
    """从缓存获取值"""
    return cache.get(key)


def set_cached(key: str, value: Any, cache: TTLCache) -> None:
    """设置缓存值"""
    cache[key] = value


def clear_cache(cache: TTLCache) -> None:
    """清空缓存"""
    cache.clear()


# LRU缓存装饰器示例
@lru_cache(maxsize=128)
def get_scan_task_cached(task_id: int):
    """使用LRU缓存的任务获取函数（示例）"""
    # 实际实现中会从数据库查询
    pass

